Grundkurs SQL

4.2.2  Nach mehreren Spalten sortieren

Bei einem umfangreicheren Datenbestand kann es nützlich oder notwendig sein, dass nach mehreren Spalten sortiert wird.

[21]SELECT   name, vorname, position, geburtsdatum
FROM     tbl_mitarbeiter
ORDER BY position, geburtsdatum

In dieser SQL-Abfrage wird nach zwei Spalten sortiert. Es werden die Feldwerte zeilenweise nach Position (position) des Mitarbeiters aufsteigend sortiert ausgegeben. Zusätzlich wird bei gleichen Feldwerten für die Position auch noch nach dem Geburtsdatum der Person aufsteigend sortiert. Dies wird durch die Reihenfolge der Felder in der ORDER BY-Anweisung bestimmt.

[21]SELECT   name, vorname, position, geburtsdatum
FROM     tbl_mitarbeiter
ORDER BY position ASC, geburtsdatum DESC

Mit dieser SQL-Abfrage werden alle Mitarbeiter in aufsteigender Reihenfolge nach ihrer Position sortiert und bei gleichem Wert absteigend nach dem Geburtsdatum, also die jüngsten Mitarbeiter dieser Position zuerst, ausgegeben.

Die allgemeine Form der ORDER BY-Anweisung sieht so aus:

SELECT   Feldliste
FROM     Tabelle
ORDER BY Feld1 ASC|DESC, Feld2 ASC|DESC, ...

Wie bereits erwähnt, kann ASC (aufsteigend) weggelassen werden, während DESC (absteigend/rückwärts) geschrieben werden muss.
Bei der Auswertung werden die Felder von links nach rechts ausgewertet, d.h. zuerst wird nach dem Feld1 sortiert, dann innerhalb gleicher Werte in Feld1 nach Feld2 usw.

Probieren Sie die Anweisungen in phpMyAdmin selbst aus und variieren Sie dabei die Reihenfolge der Feldnamen in der ORDER BY-Anweisung.